widget: Draw widget clips with GEOMETRY debugging
authorTimm Bäder <mail@baedert.org>
Mon, 22 May 2017 09:37:04 +0000 (11:37 +0200)
committerMatthias Clasen <mclasen@redhat.com>
Thu, 20 Jul 2017 01:27:13 +0000 (21:27 -0400)
gtk/gtkwidget.c

index 9ca7c3033065925aa567cc2ebbcc64fb1c83905f..9c024457fa921c1902c726c7686f579a10a1a4f3 100644 (file)
@@ -15473,6 +15473,38 @@ gtk_widget_maybe_add_debug_render_nodes (GtkWidget             *widget,
       priv->highlight_resize = FALSE;
       gtk_widget_queue_draw (widget);
     }
+
+  if (GTK_DISPLAY_DEBUG_CHECK (display, GEOMETRY))
+    {
+      GdkRGBA clip_color = {0, 0, 1, 0.7};
+      GtkAllocation offset_clip;
+      graphene_rect_t bounds;
+
+      offset_clip = priv->clip;
+      offset_clip.x -= priv->allocation.x;
+      offset_clip.y -= priv->allocation.y;
+
+      graphene_rect_init (&bounds,
+                          offset_clip.x, offset_clip.y,
+                          offset_clip.width, 1);
+      gtk_snapshot_append_color (snapshot, &clip_color, &bounds, "Clip Top");
+
+      graphene_rect_init (&bounds,
+                          offset_clip.x, offset_clip.y + offset_clip.height - 1,
+                          offset_clip.width, 1);
+      gtk_snapshot_append_color (snapshot, &clip_color, &bounds, "Clip bottom");
+
+      graphene_rect_init (&bounds,
+                          offset_clip.x, offset_clip.y + 1,
+                          1, offset_clip.height - 2);
+      gtk_snapshot_append_color (snapshot, &clip_color, &bounds, "Clip left");
+
+      graphene_rect_init (&bounds,
+                          offset_clip.x + offset_clip.width - 1, offset_clip.y + 1,
+                          1, offset_clip.height - 2);
+      gtk_snapshot_append_color (snapshot, &clip_color, &bounds, "Clip right");
+
+    }
 }
 
 void